import ssl
from qcloudsms_py import SmsMultiSender, SmsSingleSender
from qcloudsms_py.httpclient import HTTPError
from django.conf import settings

# ssl._create_default_https_context = ssl.create_default_context()


def send_sms_single(phone_num, template_id, template_param_list):
    '''
    单条发送短信
    :param phone_num: 手机号
    :param template_id: 腾讯云短信模板ID
    :param template_param_list: 短信模板所需列表，例如[验证码：{1}，描述：{2}]，则传递参数[888,666]按顺序去格式化模板
    :return:
    '''
    appid = settings.TENCENT_SMS_APP_ID
    appkey = settings.TENCENT_SMS_APP_KEY
    sms_sign = settings.TENCENT_SMS_SIGN

    sender = SmsSingleSender(appid, appkey)

    try:
        response = sender.send_with_param(86, phone_num_list, template_id, param_list, sign=sms_sign)
    except HTTPError as e:
        response = {'result': 1000, 'errmsg': '网络异常发送失败'}

    return response


def send_sms_multi(phone_num_list, template_id, param_list):
    '''
    批量发送短信
    :param phone_num_list: 手机号列表
    :param template_id: 腾讯云短信模板ID
    :param param_list: 短信模板所需列表，例如[验证码：{1}，描述：{2}]，则传递参数[888,666]按顺序去格式化模板
    :return:
    '''
    appid = 112143511
    appkey = '自己应用的key'
    sms_sign = 'python之路'

    sender = SmsMultiSender(appid, appkey)

    try:
        response = sender.send_with_param(86, phone_num_list, template_id, param_list, sign=sms_sign)
    except HTTPError as e:
        response = {'result': 1000, 'errmsg': '网络异常发送失败'}

    return response

# if __name__ == '__main__':
#     result1 = send_sms_single('18664191922', 548887, [666, ])
#     print(result1)
#
#     result2 = send_sms_multi(['18664191922', '13788731617'], 548887, [666, ])
#     print(result1)
